// ItemData.cpp: implementation of the CItemData class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "ItemData.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CItemData::CItemData()
{

}

CItemData::~CItemData()
{
	
}

CItemData::CItemData(const CItemData &itemdata)
{
	m_arrCols = itemdata.m_arrCols;

	const int iItemCount= itemdata.GetItemCount();
	const int iSubItemCount= itemdata.GetSubItemCount();
	for (int iItem= 0; iItem < iItemCount; iItem++)
	{
		CCopyableArray<CString,LPCTSTR> arrItem;
			for (int iSubItem= 0; iSubItem < iSubItemCount; iSubItem++)
			{
				arrItem.Add( itemdata.GetSubItem( iItem, iSubItem ) );
			}
		m_data.Add( arrItem );
	}
}

//////////////////////////////////////////////////////////////////////
// Functions
//////////////////////////////////////////////////////////////////////

const CCopyableArray<LVCOLUMN,LVCOLUMN&> & CItemData::GetCols()
{
	return (m_arrCols);
}

int CItemData::GetItemCount() const
{
	return (m_data.GetSize());
}

int CItemData::GetSubItemCount() const
{
	if (m_data.GetSize() > 0)
	{
		CCopyableArray<CCopyableArray<CString,LPCTSTR>,CCopyableArray<CString,LPCTSTR>&> *pData= const_cast<CCopyableArray<CCopyableArray<CString,LPCTSTR>,CCopyableArray<CString,LPCTSTR>&>*>(&m_data);
		return ((*pData)[0].GetSize());
	}
	else
	{
		return (0);
	}
}

CString & CItemData::GetSubItem(const int iItem, const int iSubItem)
{
	return (m_data[iItem][iSubItem]);
}

const CString & CItemData::GetSubItem(const int iItem, const int iSubItem) const
{
	CCopyableArray<CCopyableArray<CString,LPCTSTR>,CCopyableArray<CString,LPCTSTR>&> *pData= const_cast<CCopyableArray<CCopyableArray<CString,LPCTSTR>,CCopyableArray<CString,LPCTSTR>&>*>(&m_data);
	return ((*pData)[iItem][iSubItem]);
}
